#Boa:Frame:Frame1

import wx
import wx.grid
import utiles
import consultasBD
from decimal import Decimal

def create(parent):
    return Frame1(parent)

[wxID_FRAME1, wxID_FRAME1BUTTON1, wxID_FRAME1BUTTON2, wxID_FRAME1BUTTON3, 
 wxID_FRAME1CHECKBOX1, wxID_FRAME1CHOICE1, wxID_FRAME1CHOICE2, 
 wxID_FRAME1COMBOBOX1, wxID_FRAME1DATEPICKERCTRL1, wxID_FRAME1DATEPICKERCTRL2, 
 wxID_FRAME1GRID1, wxID_FRAME1PANEL1, wxID_FRAME1STATICTEXT1, 
 wxID_FRAME1STATICTEXT10, wxID_FRAME1STATICTEXT11, wxID_FRAME1STATICTEXT12, 
 wxID_FRAME1STATICTEXT13, wxID_FRAME1STATICTEXT14, wxID_FRAME1STATICTEXT15, 
 wxID_FRAME1STATICTEXT16, wxID_FRAME1STATICTEXT2, wxID_FRAME1STATICTEXT3, 
 wxID_FRAME1STATICTEXT4, wxID_FRAME1STATICTEXT5, wxID_FRAME1STATICTEXT6, 
 wxID_FRAME1STATICTEXT7, wxID_FRAME1STATICTEXT8, wxID_FRAME1STATICTEXT9, 
 wxID_FRAME1TEXTCTRL1, wxID_FRAME1TEXTCTRL10, wxID_FRAME1TEXTCTRL2, 
 wxID_FRAME1TEXTCTRL3, wxID_FRAME1TEXTCTRL4, wxID_FRAME1TEXTCTRL5, 
 wxID_FRAME1TEXTCTRL6, wxID_FRAME1TEXTCTRL7, wxID_FRAME1TEXTCTRL8, 
 wxID_FRAME1TEXTCTRL9, 
] = [wx.NewId() for _init_ctrls in range(38)]

class Frame1(wx.Frame):
    def _init_ctrls(self, prnt):
        # generated method, don't edit
        wx.Frame.__init__(self, id=wxID_FRAME1, name='', parent=prnt,
              pos=wx.Point(131, 36), size=wx.Size(1156, 551),
              style=wx.DEFAULT_FRAME_STYLE,
              title='Listar Recargos / Descuentos')
        self.SetClientSize(wx.Size(1148, 524))

        self.panel1 = wx.Panel(id=wxID_FRAME1PANEL1, name='panel1', parent=self,
              pos=wx.Point(0, 0), size=wx.Size(1148, 524),
              style=wx.TAB_TRAVERSAL)

        self.staticText1 = wx.StaticText(id=wxID_FRAME1STATICTEXT1,
              label='Sucursal', name='staticText1', parent=self.panel1,
              pos=wx.Point(16, 8), size=wx.Size(40, 13), style=0)

        self.comboBox1 = wx.ComboBox(choices=[], id=wxID_FRAME1COMBOBOX1,
              name='comboBox1', parent=self.panel1, pos=wx.Point(16, 24),
              size=wx.Size(160, 21), style=0, value='')
        self.comboBox1.SetLabel('')

        self.staticText3 = wx.StaticText(id=wxID_FRAME1STATICTEXT3,
              label='Estado', name='staticText3', parent=self.panel1,
              pos=wx.Point(184, 8), size=wx.Size(33, 13), style=0)

        self.choice1 = wx.Choice(choices=["todos", "Pendientes", "Aprobados",
              "Borrados"], id=wxID_FRAME1CHOICE1, name='choice1',
              parent=self.panel1, pos=wx.Point(184, 24), size=wx.Size(96, 21),
              style=0)

        self.staticText4 = wx.StaticText(id=wxID_FRAME1STATICTEXT4,
              label='Tipo de Operacion', name='staticText4', parent=self.panel1,
              pos=wx.Point(288, 8), size=wx.Size(87, 13), style=0)

        self.choice2 = wx.Choice(choices=["todos", "Recargos", "Descuentos"],
              id=wxID_FRAME1CHOICE2, name='choice2', parent=self.panel1,
              pos=wx.Point(288, 24), size=wx.Size(88, 21), style=0)

        self.staticText2 = wx.StaticText(id=wxID_FRAME1STATICTEXT2,
              label='Fecha Desde-Hasta', name='staticText2', parent=self.panel1,
              pos=wx.Point(384, 8), size=wx.Size(94, 13), style=0)

        self.checkBox1 = wx.CheckBox(id=wxID_FRAME1CHECKBOX1, label='',
              name='checkBox1', parent=self.panel1, pos=wx.Point(384, 24),
              size=wx.Size(16, 13), style=0)
        self.checkBox1.SetValue(False)
        self.checkBox1.Bind(wx.EVT_CHECKBOX, self.OnBotonFecha,
              id=wxID_FRAME1CHECKBOX1)

        self.datePickerCtrl1 = wx.DatePickerCtrl(id=wxID_FRAME1DATEPICKERCTRL1,
              name='datePickerCtrl1', parent=self.panel1, pos=wx.Point(400, 24),
              size=wx.Size(80, 21), style=wx.DP_DROPDOWN | wx.DP_SHOWCENTURY)
        self.datePickerCtrl1.Enable(False)

        self.datePickerCtrl2 = wx.DatePickerCtrl(id=wxID_FRAME1DATEPICKERCTRL2,
              name='datePickerCtrl2', parent=self.panel1, pos=wx.Point(480, 24),
              size=wx.Size(80, 21), style=wx.DP_DROPDOWN | wx.DP_SHOWCENTURY)
        self.datePickerCtrl2.Enable(False)

        self.staticText7 = wx.StaticText(id=wxID_FRAME1STATICTEXT7,
              label='Nro.Cliente', name='staticText7', parent=self.panel1,
              pos=wx.Point(568, 8), size=wx.Size(54, 13), style=0)

        self.textCtrl3 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL3, name='textCtrl3',
              parent=self.panel1, pos=wx.Point(568, 24), size=wx.Size(72, 21),
              style=0, value='')

        self.staticText8 = wx.StaticText(id=wxID_FRAME1STATICTEXT8,
              label='Nombre', name='staticText8', parent=self.panel1,
              pos=wx.Point(640, 8), size=wx.Size(37, 13), style=0)

        self.textCtrl4 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL4, name='textCtrl4',
              parent=self.panel1, pos=wx.Point(640, 24), size=wx.Size(200, 21),
              style=0, value='')

        self.button1 = wx.Button(id=wxID_FRAME1BUTTON1, label='Listar',
              name='button1', parent=self.panel1, pos=wx.Point(1056, 24),
              size=wx.Size(75, 23), style=0)
        self.button1.Bind(wx.EVT_BUTTON, self.OnBuscar, id=wxID_FRAME1BUTTON1)

        self.button2 = wx.Button(id=wxID_FRAME1BUTTON2, label='Salir',
              name='button2', parent=self.panel1, pos=wx.Point(1056, 496),
              size=wx.Size(75, 23), style=0)
        self.button2.Bind(wx.EVT_BUTTON, self.OnSalir, id=wxID_FRAME1BUTTON2)

        self.staticText5 = wx.StaticText(id=wxID_FRAME1STATICTEXT5,
              label='Total Recargos', name='staticText5', parent=self.panel1,
              pos=wx.Point(8, 480), size=wx.Size(72, 13), style=0)

        self.textCtrl1 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL1, name='textCtrl1',
              parent=self.panel1, pos=wx.Point(8, 496), size=wx.Size(72, 21),
              style=wx.TE_RIGHT | wx.TE_LEFT, value='0.00')
        self.textCtrl1.SetEditable(False)

        self.staticText6 = wx.StaticText(id=wxID_FRAME1STATICTEXT6,
              label='Total Descuentos', name='staticText6', parent=self.panel1,
              pos=wx.Point(88, 480), size=wx.Size(83, 13), style=0)

        self.textCtrl2 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL2, name='textCtrl2',
              parent=self.panel1, pos=wx.Point(88, 496), size=wx.Size(72, 21),
              style=wx.TE_RIGHT | wx.TE_LEFT, value='0.00')
        self.textCtrl2.SetEditable(False)

        self.button3 = wx.Button(id=wxID_FRAME1BUTTON3, label='Imprimir',
              name='button3', parent=self.panel1, pos=wx.Point(960, 496),
              size=wx.Size(75, 23), style=0)
        self.button3.Bind(wx.EVT_BUTTON, self.OnImprimir, id=wxID_FRAME1BUTTON3)

        self.grid1 = wx.grid.Grid(id=wxID_FRAME1GRID1, name='grid1',
              parent=self.panel1, pos=wx.Point(16, 56), size=wx.Size(1120, 408),
              style=0)

        self.staticText9 = wx.StaticText(id=wxID_FRAME1STATICTEXT9,
              label='RECARGOS', name='staticText9', parent=self.panel1,
              pos=wx.Point(208, 466), size=wx.Size(55, 13), style=0)

        self.staticText10 = wx.StaticText(id=wxID_FRAME1STATICTEXT10,
              label='Aprobados', name='staticText10', parent=self.panel1,
              pos=wx.Point(208, 480), size=wx.Size(52, 13), style=0)

        self.staticText11 = wx.StaticText(id=wxID_FRAME1STATICTEXT11,
              label='Pendientes', name='staticText11', parent=self.panel1,
              pos=wx.Point(280, 480), size=wx.Size(53, 13), style=0)

        self.staticText12 = wx.StaticText(id=wxID_FRAME1STATICTEXT12,
              label='Borrados', name='staticText12', parent=self.panel1,
              pos=wx.Point(352, 480), size=wx.Size(43, 13), style=0)

        self.textCtrl5 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL5, name='textCtrl5',
              parent=self.panel1, pos=wx.Point(208, 496), size=wx.Size(72, 21),
              style=wx.TE_RIGHT | wx.TE_LEFT, value='0.00')
        self.textCtrl5.SetEditable(False)

        self.textCtrl6 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL6, name='textCtrl6',
              parent=self.panel1, pos=wx.Point(280, 496), size=wx.Size(72, 21),
              style=wx.TE_RIGHT | wx.TE_LEFT, value='0.00')
        self.textCtrl6.SetEditable(False)

        self.textCtrl7 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL7, name='textCtrl7',
              parent=self.panel1, pos=wx.Point(352, 496), size=wx.Size(72, 21),
              style=wx.TE_RIGHT | wx.TE_LEFT, value='0.00')
        self.textCtrl7.SetEditable(False)

        self.staticText13 = wx.StaticText(id=wxID_FRAME1STATICTEXT13,
              label='DESCUENTOS', name='staticText13', parent=self.panel1,
              pos=wx.Point(432, 466), size=wx.Size(66, 13), style=0)

        self.staticText14 = wx.StaticText(id=wxID_FRAME1STATICTEXT14,
              label='Aprobados', name='staticText14', parent=self.panel1,
              pos=wx.Point(432, 480), size=wx.Size(52, 13), style=0)

        self.textCtrl8 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL8, name='textCtrl8',
              parent=self.panel1, pos=wx.Point(432, 496), size=wx.Size(72, 21),
              style=wx.TE_RIGHT | wx.TE_LEFT, value='0.00')
        self.textCtrl8.SetEditable(False)

        self.textCtrl9 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL9, name='textCtrl9',
              parent=self.panel1, pos=wx.Point(504, 496), size=wx.Size(72, 21),
              style=wx.TE_RIGHT | wx.TE_LEFT, value='0.00')
        self.textCtrl9.SetEditable(False)

        self.textCtrl10 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL10,
              name='textCtrl10', parent=self.panel1, pos=wx.Point(576, 496),
              size=wx.Size(72, 21), style=wx.TE_RIGHT | wx.TE_LEFT,
              value='0.00')
        self.textCtrl10.SetEditable(False)

        self.staticText15 = wx.StaticText(id=wxID_FRAME1STATICTEXT15,
              label='Pendientes', name='staticText15', parent=self.panel1,
              pos=wx.Point(504, 480), size=wx.Size(53, 13), style=0)

        self.staticText16 = wx.StaticText(id=wxID_FRAME1STATICTEXT16,
              label='Borrados', name='staticText16', parent=self.panel1,
              pos=wx.Point(576, 480), size=wx.Size(43, 13), style=0)

    def __init__(self, parent):
        self._init_ctrls(parent)
        self.choice1.SetSelection(0) # estado
        self.choice2.SetSelection(0) # tipo operacion
        self.comboSucursal()
        self.crearGrilla()

    def crearGrilla(self):
        columnas = ['Fecha','Usuario','Sucursal','Nro\nCliente','Nombre','Tipo\nOperacion','Fecha\nOperacion','Descripcion','%','Monto','Deuda\nVieja','Deuda\nNueva','Aprobado','Fecha\nAprobacion']
        self.grid1.CreateGrid(1,len(columnas))
        for i, col in enumerate(columnas): 
            self.grid1.SetColLabelValue(i, col)

        self.ajustarAnchoColumnas()
        self.grid1.EnableEditing(False)
        self.grid1.SetSelectionMode(wx.grid.Grid.wxGridSelectRows)
        self.grid1.Refresh()

    def ajustarAnchoColumnas(self):
        for y in xrange(self.grid1.GetNumberCols()):
            self.grid1.AutoSizeColumn(y,True)

    def limpiar(self):
        self.grid1.ClearGrid()
        for i in xrange(self.grid1.GetNumberRows()):
            self.grid1.DeleteRows()
        self.grid1.AppendRows()
        self.textCtrl1.SetLabel("0.00")
        self.textCtrl2.SetLabel("0.00")

    def OnBotonFecha(self, event):
        if self.checkBox1.GetValue():
            self.datePickerCtrl1.Enable(True)
            self.datePickerCtrl2.Enable(True)
        else:
            self.datePickerCtrl1.Enable(False)
            self.datePickerCtrl2.Enable(False)

    def comboSucursal(self):
        sucursal = utiles.getSucursalActiva()
        SQL = "SELECT nombre FROM sucursales WHERE codsucursal='%s'" % (sucursal)
        resultado = consultasBD.ordenCrudaDict(SQL)
        self.comboBox1.SetLabel(resultado[0]["nombre"])
        SQL = "SELECT nombre FROM sucursales"
        resultado = consultasBD.ordenCrudaDict(SQL)
        self.comboBox1.Append("todas")
        for item in resultado:
            self.comboBox1.Append(item["nombre"])
        self.comboBox1.SetSelection(0)

    def OnSalir(self, event):
        self.Close()

    def OnBuscar(self, event):
        if self.comboBox1.GetLabel()=="todas":
            opcSucu = ""
        elif self.comboBox1.GetSelection()==1:
            opcSucu = " AND sucursal='0' "
        elif self.comboBox1.GetSelection()==2:
            opcSucu = " AND sucursal='1' "
        elif self.comboBox1.GetSelection()==3:
            opcSucu = " AND sucursal='2' "
        else:
            opcSucu = " AND sucursal='3' "

        if self.checkBox1.GetValue():
            fechaInicio = self.datePickerCtrl1.GetLabel()[:10].replace("/","-")
            fechaInicio = utiles.invertirFecha(fechaInicio)
            fechaInicio = fechaInicio + " 00:00:00"
            fechaFin = self.datePickerCtrl2.GetLabel()[:10].replace("/","-")
            fechaFin = utiles.invertirFecha(fechaFin)
            fechaFin = fechaFin + " 23:59:59"
            opcFecha = " AND fechaoperacion BETWEEN '"+fechaInicio+"' AND '"+fechaFin+"' "
        else:
            opcFecha = ""
            
        if self.choice1.GetSelection()==0:
            opcEstado = ""
        elif self.choice1.GetSelection()==1: # pendientes
            opcEstado = " AND aprobado='0' "
        elif self.choice1.GetSelection()==2: # aprobados
            opcEstado = " AND aprobado='1' "
        else: # borrados
            opcEstado = " AND aprobado='2' "

        if self.choice2.GetSelection()==0:
            opcTipoOperacion = ""
        elif self.choice2.GetSelection()==1:
            opcTipoOperacion = " AND tipooperacion='RECA' "
        else:
            opcTipoOperacion = " AND tipooperacion='DESC' "

        if self.textCtrl3.GetLabel()=="":
            opcCliente = ""
        else:
            opcCliente = " AND idcliente='"+self.textCtrl3.GetLabel()+"' "
            
        if self.textCtrl4.GetLabel()=="":
            opcNN = ""
        else:
            opcNN = " AND nombre LIKE '%"+self.textCtrl4.GetLabel()+"%' "

        self.limpiar()
        
        r1 = "SELECT * FROM vtas_ctasctes_ajustes "
        r2 = "WHERE porcentaje>=0 "
        r3 = opcSucu+opcFecha+opcEstado+opcTipoOperacion+opcCliente+opcNN
        sql = r1+r2+r3
        print sql
        resultados = consultasBD.ordenCrudaDict(sql)
        if len(resultados)==0 or resultados==None or resultados==():
            utiles.mensaje(None,"No se encontraron datos")
            self.comboBox1.SetFocus()
            return
        
        totalRecargos = 0
        totalDescuentos = 0
        
        totalRECAaprobados = Decimal("0.00")
        totalDESCaprobados = Decimal("0.00")
        totalRECApendiente = Decimal("0.00")
        totalDESCpendiente = Decimal("0.00")
        totalRECAborrados = Decimal("0.00")
        totalDESCborrados = Decimal("0.00")
        
        #Fecha,Usuario,Sucursal,NroCliente,Nombre,TipoOpe,FechaOper,Descripcion,%,Monto,DeudaVieja,DeudaNueva,Aprobado,FechaAprobacion
        #0     1       2        3          4      5       6         7           8 9     10         11         12       13
        for fila,item in enumerate(resultados):
            fecha = str(item["fecha"])[:10]
            fecha = utiles.invertirFecha2(fecha)
            self.grid1.SetCellValue(fila,0,fecha)
            self.grid1.SetCellAlignment(fila,0,wx.ALIGN_CENTRE,wx.ALIGN_CENTRE)
            self.grid1.SetCellValue(fila,1,str(item["usuario"]))
            sucursal = int(item["sucursal"])+1
            if sucursal == 1: sucursal = "Central"
            elif sucursal == 2: sucursal = "Parana"
            elif sucursal == 3: sucursal = "Saska"
            else: sucursal = "Peatonal"
            self.grid1.SetCellValue(fila,2,sucursal)
            self.grid1.SetCellValue(fila,3,str(item["idcliente"]))
            self.grid1.SetCellValue(fila,4,str(item["nombre"]))
            self.grid1.SetCellValue(fila,5,str(item["tipooperacion"]))
            self.grid1.SetCellAlignment(fila,5,wx.ALIGN_CENTRE,wx.ALIGN_CENTRE)
            fecha = str(item["fechaoperacion"])[:10]
            fecha = utiles.invertirFecha2(fecha)
            self.grid1.SetCellValue(fila,6,fecha)
            self.grid1.SetCellAlignment(fila,6,wx.ALIGN_CENTRE,wx.ALIGN_CENTRE)
            self.grid1.SetCellValue(fila,7,str(item["descripcion"]))
            self.grid1.SetCellValue(fila,8,str(item["porcentaje"]))
            self.grid1.SetCellAlignment(fila,8,wx.ALIGN_RIGHT,wx.ALIGN_CENTRE)
            try:
                valor = item["valor"]
            except:
                valor = 0
            estado = str(item["aprobado"])
            if str(item["tipooperacion"])=="RECA":
                totalRecargos+= valor
                if estado=="0": #pendiente
                    try:
                        totalRECApendiente+= Decimal(str(valor)).quantize(Decimal("0.10"))
                    except:
                        totalRECApendiente+= Decimal("0.00")
                elif estado=="1": #aprobado
                    try:
                        totalRECAaprobados+= Decimal(str(valor)).quantize(Decimal("0.10"))
                    except:
                        totalRECAaprobados+= Decimal("0.00")
                else:
                    try:
                        totalRECAborrados+= Decimal(str(valor)).quantize(Decimal("0.10"))
                    except:
                        totalRECAborrados+= Decimal("0.00")
            else:
                totalDescuentos+= valor
                if estado=="0": #pendiente
                    try:
                        totalDESCpendiente+= Decimal(str(valor)).quantize(Decimal("0.10"))
                    except:
                        totalDESCpendiente+= Decimal("0.00")
                elif estado=="1": #aprobado
                    try:
                        totalDESCaprobados+= Decimal(str(valor)).quantize(Decimal("0.10"))
                    except:
                        totalDESCaprobados+= Decimal("0.00")
                else:
                    try:
                        totalDESCborrados+= Decimal(str(valor)).quantize(Decimal("0.10"))
                    except:
                        totalDESCborrados+= Decimal("0.00")
            self.grid1.SetCellValue(fila,9,str(valor))
            self.grid1.SetCellAlignment(fila,9,wx.ALIGN_RIGHT,wx.ALIGN_CENTRE)
            self.grid1.SetCellValue(fila,10,str(item["viejadeuda"]))
            self.grid1.SetCellAlignment(fila,10,wx.ALIGN_RIGHT,wx.ALIGN_CENTRE)
            self.grid1.SetCellValue(fila,11,str(item["nuevadeuda"]))
            self.grid1.SetCellAlignment(fila,11,wx.ALIGN_RIGHT,wx.ALIGN_CENTRE)
            estado = str(item["aprobado"])
            if estado != "0":
                if estado == "1":
                    estado = "Ok"
                else:
                    estado = "Borrado"
                self.grid1.SetCellValue(fila,12,estado)
                fecha = str(item["fechaaprobado"])[:10]
                fecha = utiles.invertirFecha2(fecha)
                self.grid1.SetCellValue(fila,13,fecha)
                self.grid1.SetCellAlignment(fila,13,wx.ALIGN_CENTRE,wx.ALIGN_CENTRE)
            else:
                self.grid1.SetCellValue(fila,12,"Pendiente")
                self.grid1.SetCellValue(fila,13,"")
                self.grid1.SetCellAlignment(fila,13,wx.ALIGN_CENTRE,wx.ALIGN_CENTRE)
            self.grid1.AppendRows()

        self.textCtrl1.SetLabel(str(totalRecargos))
        self.textCtrl2.SetLabel(str(totalDescuentos))

        self.textCtrl5.SetLabel(str(totalRECAaprobados))
        self.textCtrl6.SetLabel(str(totalRECApendiente))
        self.textCtrl7.SetLabel(str(totalRECAborrados))
        
        self.textCtrl8.SetLabel(str(totalDESCaprobados))
        self.textCtrl9.SetLabel(str(totalDESCpendiente))
        self.textCtrl10.SetLabel(str(totalDESCborrados))
       
        self.ajustarAnchoColumnas()

    def OnImprimir(self, event):
        print "Imprimir"
        #Fecha,Usuario,Sucursal,NroCliente,Nombre,TipoOpe,FechaOper,Descripcion,%,Monto,DeudaVieja,DeudaNueva,Aprobado,FechaAprobacion
        #0     1       2        3          4      5       6         7           8 9     10         11         12       13

        f=open("c:\\matrisamor.doc\\reporte-ClientesRecargos.html","w")
        numeroPagina = 1
        nrosuc,nombresuc = utiles.datosSucursal()
        
        totalItemPorPagina = 55
        totalPaginas = int(self.grid1.GetNumberRows()-1) / totalItemPorPagina 
        totalPaginas+= 1

        def encabezadoPagina(texto):
            fecha = utiles.getfechaTime()

            a = '<table width="100%" cellspacing="0" border="0">\n'
            a+= '<tr>\n'
            a+= '<td valign="center" align="left" width="33%">'
            a+= 'SUSSAN BOUTIQUE<br>Recargos / Descuentos<br></td>\n'
            a+= '<td valign="center" align="left" width="34%">'
            a+= '<br>'
            a+= '</td>\n'
            a+= '<td valign="center" align="right" width="33%">'+fecha
            a+= '<br>P&aacute;gina '+str(numeroPagina)+' / '+str(totalPaginas)+'</td>\n'
            a+= '</tr>\n'
            a+= '</table>\n'
            texto+= a
            return texto
        
        def encabezadoTabla(texto):
            #Fecha,Usuario,Sucursal,NroCliente,Nombre,TipoOpe,FechaOper,Descripcion,%,Monto,DeudaVieja,DeudaNueva,Aprobado,FechaAprobacion
            #0     1       2        3          4      5       6         7           8 9     10         11         12       13
            a = '<hr>'

            tama = '"0.05"'
            a+= '<table width="100%" cellspacing="1" border="0"> \n'
            a+= '<tr>\n'
            a+= '<td valign="top" align="right"><font size='+tama+'>Orden</font></td> \n'
            a+= '<td valign="top" align="center"><font size='+tama+'>Fecha<br>Alta</font></td> \n'
            a+= '<td valign="top" align="left"><font size='+tama+'>Sucursal</font></td> \n'
            a+= '<td valign="top" align="left"><font size='+tama+'>Nro.Cliente</font></td> \n'
            a+= '<td valign="top" align="left"><font size='+tama+'>Nombre</font></td> \n'
            a+= '<td valign="top" align="center"><font size='+tama+'>Tipo</font></td> \n'
            a+= '<td valign="top" align="right"><font size='+tama+'>%</font></td> \n'
            a+= '<td valign="top" align="right"><font size='+tama+'>Monto</font></td> \n'
            a+= '<td valign="top" align="left"><font size='+tama+'>Aprobado</font></td> \n'
            a+= '<td valign="top" align="center"><font size='+tama+'>Fecha<br>aprobado</font></td> \n'
            a+= '</tr> \n'
#            a+= '</table>\n'
            a+= '<tr>\n'
            a+= '<td colspan="10"><hr></td>\n'
            a+= '</tr>\n'
            texto+= a
            return texto
        
        cadena = '<?xml version="1.0" encoding="utf-8" ?> \n'
        cadena+= '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> \n'
        cadena+= '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> \n'
        cadena+= '<head> \n'
        cadena+= '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> \n'
        cadena+= '<meta name="generator" content="Docutils 0.4.1: http://docutils.sourceforge.net/" /> \n'
        cadena+= '<title>Sussan Boutique</title> \n'
        cadena+= '</head> \n'
        cadena+= '<body> \n'

        cadena = encabezadoPagina(cadena)
        cadena = encabezadoTabla(cadena)
        f.write(cadena)

        renglon = 0
        for i in xrange(self.grid1.GetNumberRows()-1):
        #Fecha,Usuario,Sucursal,NroCliente,Nombre,TipoOpe,FechaOper,Descripcion,%,Monto,DeudaVieja,DeudaNueva,Aprobado,FechaAprobacion
        #0     1       2        3          4      5       6         7           8 9     10         11         12       13

        #Fecha,Sucursal,NroCliente,Nombre,TipoOpe,%,Monto,Aprobado,FechaAprobacion

            orden = str(i+1)
            fecha = self.grid1.GetCellValue(i,0)
            sucursal = self.grid1.GetCellValue(i,2)
            nrocliente = self.grid1.GetCellValue(i,3)
            nombre = self.grid1.GetCellValue(i,4)
            tipooperacion = self.grid1.GetCellValue(i,5)
            porcentaje = self.grid1.GetCellValue(i,8)
            monto = self.grid1.GetCellValue(i,9)
            aprobado = self.grid1.GetCellValue(i,12)
            fechaaprobado = self.grid1.GetCellValue(i,13)
            
            tama = '"0.2"'
            cadena = '<tr> \n'
            cadena+= '<td valign="top" align="right"><font size='+tama+'>'+orden+'</font></td> \n'
            cadena+= '<td valign="top" align="center"><font size='+tama+'>'+fecha+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size='+tama+'>'+sucursal+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size='+tama+'>'+nrocliente+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size='+tama+'>'+nombre+'</font></td> \n'
            cadena+= '<td valign="top" align="center"><font size='+tama+'>'+tipooperacion+'</font></td> \n'
            cadena+= '<td valign="top" align="right"><font size='+tama+'>'+porcentaje+'</font></td> \n'
            cadena+= '<td valign="top" align="right"><font size='+tama+'>'+monto+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size='+tama+'>'+aprobado+'</font></td> \n'
            cadena+= '<td valign="top" align="center"><font size='+tama+'>'+fechaaprobado+'</font></td> \n'
            cadena+= '</tr>\n'
            f.write(cadena)
            
            renglon+= 1
            
            if renglon == totalItemPorPagina :
                renglon = 0
                numeroPagina+= 1
                cadena = encabezadoPagina("")
                cadena = encabezadoTabla(cadena)
                f.write(cadena)

        tama = '"0.2"'
            
        cadena = '</table>\n'
        f.write(cadena)
        f.close()

        import os
        os.system("taskkill /IM firefox.exe /F")
        os.system("c:\\explorer.lnk c:\\matrisamor.doc\\reporte-ClientesRecargos.html")
